#ifndef IDEVICEINDEXBUFFER_H
#define IDEVICEINDEXBUFFER_H

#include "Framework/Prerequisites.h"
#include "Graphics/IDeviceBuffer.h"
#include "Framework/SharedPtr.h"

namespace tyro
{
	namespace Graphics
	{
		class IDeviceIndexBuffer : public IDeviceBuffer
		{
		public:

			IDeviceIndexBuffer(IDeviceBufferManagerBase* mgr, VertexIndexType indexType, size_t numberIndecies);
			VertexIndexType GetType(void) const { return indexType; }
			size_t GetNumberIndecies(void) const { return numberIndecies; }
			size_t GetIndexSize(void) const { return indexSize; }

		protected:

			IDeviceBufferManagerBase*	mgr;
			VertexIndexType				indexType;
			size_t						numberIndecies;
			size_t						indexSize;

		private:
		};

		class IDeviceIndexBufferSharedPtr : public Framework::SharedPtr<IDeviceIndexBuffer>
		{
		public:
			IDeviceIndexBufferSharedPtr() : Framework::SharedPtr<IDeviceIndexBuffer>(){}
			explicit IDeviceIndexBufferSharedPtr(IDeviceIndexBuffer* buf);
		};
	}
}
#endif